#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Jun 12 09:37:38 2018
利用百度api实现图片文本识别
@author: XnCSD
"""

from os import path
import os
from aip import AipOcr
from PIL import Image



def convertimg(picfile, outdir):
    '''调整图片大小，对于过大的图片进行压缩
    picfile:    图片路径
    outdir：    图片输出路径
    '''
    img = Image.open(picfile)
    width, height = img.size
    while (width * height > 4000000):  # 该数值压缩后的图片大约 两百多k
        width = width // 2
        height = height // 2
    new_img = img.resize((width, height), Image.BILINEAR)
    new_img.save(path.join(outdir, os.path.basename(picfile)))


def baiduOCR(picfile):
    filename = path.basename(picfile)

    # 文字识别用的是百度api
    # 使用前需要获取密钥，在百度AI开放平台中
    # 登录自己的百度账号，点击“文字识别”服务中的“通用场景文字识别”，选择“创建应用” 在应用列表中，能够看到自己刚刚创建好的文字识别服务了，记住，这个应用中的“AppID”，“APIKey”，“SecretKey”，填到recognize.py的对应位置中
    # 使用先需先开通网络图片识别（文字识别 / 概览），每月赠送1000次，超出需付费
    APP_ID = '25631246'
    API_KEY = 'd5e18QuEAZlQX4Q4SAVU7k4S'
    SECRECT_KEY = 'e8Gqd9QelXoQPjzyOxTvPSgDlqew3Pe8'


    client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)

    i = open(picfile, 'rb')
    img = i.read()
    print("正在识别图片：\t" + filename)
    message = client.webImage(img)  # 通用网络图片识别，每月 1 000 次免费
    # message = client.basicAccurate(img)   # 通用文字高精度识别，每月 1000 次免费
    
    i.close();
    if len(message['words_result']):
        word = message.get('words_result')[0].get('words')
        return word
    else:
        return None

